In [17]:
import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 
import seaborn as sns 
import scipy.stats as s
import datetime
import matplotlib.patches as mpatches
In [52]:
def printMaximumValues(maxDay,result):
    print("Maximalny 15-minutovy vykon namerany dna {} : {} W".format(str(maxDay.index[0])[:11],str(round(np.amax(maxDay.values),2))))
    print("Maximalny vykon bol dosiahnuty v case {}".format(str(maxDay.columns[result[1][0]])))
    print("\n\n")

def UsageInDayGraph(meteringPointName,df,TplotColor='blue'):

        
    result = np.where(df.values == np.amax(df.values))
    maxDay = df.iloc[result[0][0]:result[0][0]+1]
    result = np.where(maxDay.values == np.amax(maxDay.values))
    
    ax = df.T.plot(figsize=(20,8), legend=False, color=TplotColor, alpha=0.2)
    # if maxDayPlot:
    #     ax = maxDay.T.plot(figsize=(20,8), legend=False, color='black',ax=ax)
    
    plt.title("Summárny denný výkon (W) pre "+meteringPointName)
    plt.ylabel('Sumárny výkon')
    plt.xlabel('Denný priebeh')
    black_patch = mpatches.Patch(color='black', label='Maximalny denny pribeh vykonu')
    plt.legend(handles=[black_patch], prop={'size': 20})
    # if saveImg:
    #     plt.savefig('./plots/'+meteringPointName+'_KW_frequency_daySum_plot.png')
    plt.show()
    printMaximumValues(maxDay,result)
    
In [76]:
def createTransformedDataSetHourlyFTE(df,columnName):
    df = df.drop(df.index[0])
    columnString = []
    columnString.append("Date")
    for x in df['Date'][:4*24]:
        #columnString.append(str(str(x.hour)+":"+str(x.minute)+":"+str(x.second)))
        columnString.append(str(str(x.hour)+":"+str(x.minute)+":"+str(x.second)))
    df2 = pd.DataFrame(columns=columnString)
    i = 0
    lastDay = ""
    dateT = "2018-1-1"
    for index, row in df.iterrows():
        if lastDay != dateT:
            lastDay = dateT
            i += 1
            df2.loc[i] = np.NaN
            df2.at[i, "Date"] = dateT
        kW = row[columnName]

        time = str(str(row['Date'].hour)+":"+str(row['Date'].minute)+":"+str(row['Date'].second))
        dateT = str(str(row['Date'].year)+"-"+str(row['Date'].month)+"-"+str(row['Date'].day))
        df2.at[i, time] = kW
    df2 = df2.fillna(df2.mean())
    return df2
In [69]:
 
In [78]:
# value1 = DUBRAVY
# value2 = Plesivec
# value3 = Ratka
# value4 = Rohovce
name = "FVE"
columns = ['value_1', 'value_2', 'value_3', 'value_4', 'sum']
for column in columns: 
    df =  pd.read_csv("data/"+name+"_yeardata.csv")
    df = df[['date_1', column]]
    df['date_1'] = pd.to_datetime(df['date_1'], format="%Y-%m-%d %H:%M:%S")
    df = df.rename(columns={"date_1": "Date"})
    df = createTransformedDataSetHourlyFTE(df,column)
    dfGrouped = df.groupby('Date').sum()
    UsageInDayGraph(name+" "+column,dfGrouped,dfGrouped)
Maximalny 15-minutovy vykon namerany dna 2018-4-2 : 792.86 W
Maximalny vykon bol dosiahnuty v case 12:45:0



Maximalny 15-minutovy vykon namerany dna 2018-5-14 : 869.5 W
Maximalny vykon bol dosiahnuty v case 12:45:0



Maximalny 15-minutovy vykon namerany dna 2018-5-16 : 2600.0 W
Maximalny vykon bol dosiahnuty v case 13:0:0



Maximalny 15-minutovy vykon namerany dna 2018-4-6 : 1016.7 W
Maximalny vykon bol dosiahnuty v case 13:0:0



Maximalny 15-minutovy vykon namerany dna 2018-3-22 : 4956.09 W
Maximalny vykon bol dosiahnuty v case 11:15:0



In [80]:
# value1 = Chynoriansky_Mlyn
# value2 = Zeliezovce
name = "MVE"
columns = ['value_1', 'value_2', 'sum']
for column in columns: 
    df =  pd.read_csv("data/"+name+"_yeardata.csv")
    df = df[['date_1', column]]
    df['date_1'] = pd.to_datetime(df['date_1'], format="%Y-%m-%d %H:%M:%S")
    df = df.rename(columns={"date_1": "Date"})
    df = createTransformedDataSetHourlyFTE(df,column)
    dfGrouped = df.groupby('Date').sum()
    UsageInDayGraph(name+" "+column,dfGrouped,dfGrouped)
Maximalny 15-minutovy vykon namerany dna 2018-1-3 : 315.12 W
Maximalny vykon bol dosiahnuty v case 1:30:0



Maximalny 15-minutovy vykon namerany dna 2018-1-2 : 2775.0 W
Maximalny vykon bol dosiahnuty v case 20:45:0



Maximalny 15-minutovy vykon namerany dna 2018-1-2 : 3087.36 W
Maximalny vykon bol dosiahnuty v case 20:45:0



In [82]:
# value1 = 50Hertz
# value2 = Amprion
# value3 = TenneTTSO
# value4 = TransnetBW
name = "WPG"
columns = ['value_1', 'value_2', 'value_3', 'value_4', 'sum']
for column in columns: 
    df =  pd.read_csv("data/"+name+"_yeardata.csv")
    df = df[['date_1', column]]
    df['date_1'] = pd.to_datetime(df['date_1'], format="%Y-%m-%d %H:%M:%S")
    df = df.rename(columns={"date_1": "Date"})
    df = createTransformedDataSetHourlyFTE(df,column)
    dfGrouped = df.groupby('Date').sum()
    UsageInDayGraph(name+" "+column,dfGrouped,dfGrouped)
Maximalny 15-minutovy vykon namerany dna 2020-3-12 : 725.0 W
Maximalny vykon bol dosiahnuty v case 9:30:0



Maximalny 15-minutovy vykon namerany dna 2020-1-28 : 463.0 W
Maximalny vykon bol dosiahnuty v case 11:45:0



Maximalny 15-minutovy vykon namerany dna 2020-2-9 : 727.44 W
Maximalny vykon bol dosiahnuty v case 14:15:0



Maximalny 15-minutovy vykon namerany dna 2019-12-2 : 1506.78 W
Maximalny vykon bol dosiahnuty v case 11:0:0



Maximalny 15-minutovy vykon namerany dna 2020-2-9 : 1893.72 W
Maximalny vykon bol dosiahnuty v case 16:15:0